local mt = {}
mt.__index = mt

function mt.New(cls, name)
    local self = setmetatable({}, cls)
    self.name = name
    return self
end

local single = {}
single.__index = single

function single:New(name)
    if not self.name then
        self.name = name
    end
    return self
end

return mt
